Accept the 108 byte header of BMP v4. (#168799)
authorMatthias Clasen <mclasen@redhat.com>
Fri, 27 May 2005 15:52:19 +0000 (15:52 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 27 May 2005 15:52:19 +0000 (15:52 +0000)
2005-05-27  Matthias Clasen  <mclasen@redhat.com>

* io-bmp.c: Accept the 108 byte header of BMP v4.  (#168799)

gdk-pixbuf/ChangeLog
gdk-pixbuf/io-bmp.c

index 75e10077c31ee549cdc5767700ad00d87330b8b5..2a0d75a8fd81e9151a9a180ea699da6d178edce5 100644 (file)
@@ -1,3 +1,7 @@
+2005-05-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * io-bmp.c: Accept the 108 byte header of BMP v4.  (#168799)
+
 2005-05-25  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk-pixbuf.symbols: 
index ffde9ab12321fc694acf2cb568523fc35c12f410..eecef9efac40b6a4a6ed09b81b6668a981530d2f 100644 (file)
@@ -265,7 +265,12 @@ static gboolean DecodeHeader(unsigned char *BFH, unsigned char *BIH,
 #endif    
 
        State->Header.size = lsb_32 (&BIH[0]);
-       if (State->Header.size == 40) {
+       if (State->Header.size == 108) {
+               State->Header.width = lsb_32 (&BIH[4]);
+               State->Header.height = lsb_32 (&BIH[8]);
+               State->Header.depth = lsb_16 (&BIH[14]);
+               State->Compressed = lsb_32 (&BIH[16]);
+       } else if (State->Header.size == 40) {
                State->Header.width = lsb_32 (&BIH[4]);
                State->Header.height = lsb_32 (&BIH[8]);
                State->Header.depth = lsb_16 (&BIH[14]);